/**
 * LinearAlgebraObject 类作为线性代数对象的基类，
 * 提供宽度、高度和形状等公共属性。
 */
export class LinearAlgebraObject {

  private _width: number;
  private _height: number;
  private _shape: number[];

  /**
   * 构造一个具有给定宽度和高度的 LinearAlgebraObject。
   * @param {number} width - 对象的宽度。
   * @param {number} height - 对象的高度。
   */
  constructor(width: number, height: number) {
    this._width = width;
    this._height = height;
    this._shape = [height, width];
  }

  /**
   * 获取对象的宽度。
   * @return {number} 对象的宽度。
   */
  get width() {
    return this._width;
  }

  /**
   * 获取对象的高度。
   * @return {number} 对象的高度。
   */
  get height() {
    return this._height;
  }

  /**
   * 获取对象的形状。
   * @return {number[]} 以数组 [height, width] 表示的对象形状。
   */
  get shape() {
    return this._shape;
  }
}